/**
 * Created with IntelliJ IDEA.
 * Description:
 * https://gitee.com/li--jiaqiang/java-test.git
 * git pull
 * git pull origin master
 * git pull origin master --allow-unrelated-histories
 * User: 86187
 * Date: 2022-04-25
 * Time: 22:14
 */

//Scanner scan = new Scanner(System.in);

import java.util.Scanner;

public class TeatDemo {

    /**
     * 初识 类和 对象
     * @param args
     */
    public static void main(String[] args) {
        People per = new People(); // new了一个对象(在堆上),有了这一步才可以访问成员变量
        per.name = "li Jia Qiang";
        per.age = 18;
        System.out.println(per.name);
        System.out.println(per.age);

        //方法 和 静态成员变量 的 访问不需要 new 一个对象
        People.eat();

        People.size = 10;
        System.out.println(People.size);

        per.show();

    }
}

class People {
    //成员变量(也叫实例成员):属于对象 通过 对象名(per).成员变量名(name) 使用
    //在类里头方法外头
    //前面统一写public 后面会了解
    //不初始化的话默认值是其对应的 零值
    public String name; //在堆上,,默认值是其对应的 零值 是 null
    public int age; //在堆上,,默认值是其对应的 零值 是 0


    //静态方法:不属于对象  通过 类名(People) . 方法名(eat)  来使用
    //访问方式与静态实例成员一样
    //静态方法内部不能访问非静态数据成员
    public static void eat() {
        int a = 10; //局部变量必须要初始化，且在栈上
        //age = 10;-->报错
        //size = 20;-->正确，不报错
        System.out.println("eat");
    }


    //实例成员方法，访问方式与实例成员一样
    //可以访问静态数据成员,对此没有限制
    public void show() {
        eat(); //访问静态数据成员
        System.out.println("我叫"+name+"，今年"+age+"岁");
    }



    //静态成员变量，不属于对象 通过 类名(People) . 变量名(size)  来使用
    //前面是public static
    public static int size; //在本地方法栈中，，,默认值是其对应的 零值 是 0
}


